Published 2022-05-22
Next.js - API Routes
pages/api
目录下的任何文件都将作为 API
端点映射到 /api/*
,而不是 page
。这些文件只会增加服务端文件包的体积,而不会增加客户端文件包的大小。
Next.js
中创建 rest api 的方式如下:
export default (req, res) => {
console.log(req, res)
return {}
}
- req: 请求对象,http.IncomingMessage 实例
- res: 响应对象,http.ServerResponse 实例
响应
res.status(code)
:设置响应状态码res.json(data)
:设置响应数据res.send(data)
:设置响应数据res.redirect(url)
:重定向
创建一个响应:
export default function handler(req, res) {
res.status(200).json({message: 'Hello from Next.js!'})
}
创建路由
创建一个简单的 rest api
export default (req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'application/json')
res.json({
message: 'Hello World'
})
}
创建动态 API 路由:pages/api/post/[pid].js
export default function handler(req, res) {
const {pid} = req.query
res.end(`Post: ${pid}`)
}
创建匹配所有路由:pages/api/post/[...slug].js
export default function handler(req, res) {
const {slug} = req.query
res.end(`Post: ${slug.join(', ')}`)
}
启动服务:
npm run dev
验证结果:
Comments
No Comments!